package com.heaven.luxuriant.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.heaven.luxuriant.R;
import com.heaven.luxuriant.adapter.NewsAdapter;
import com.heaven.luxuriant.base.BaseActivity;
import com.heaven.luxuriant.data.News;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;

public class MainActivity extends BaseActivity
        implements NavigationView.OnNavigationItemSelectedListener {

    private static final String TAG = "MainActivity";

    @BindView(R.id.toolbar)
    Toolbar toolbar;

    @BindView(R.id.drawer_layout)
    DrawerLayout drawer;

    @BindView(R.id.nav_view)
    NavigationView navigationView;

    @BindView(R.id.news_list)
    RecyclerView newsRecyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        newsRecyclerView.setLayoutManager(layoutManager);

        List<News> news = initData();
        NewsAdapter newsAdapter = new NewsAdapter(this, news);

        newsRecyclerView.setAdapter(newsAdapter);
        // 设置 item 分割线
        newsRecyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));

        setSupportActionBar(toolbar);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();

        navigationView.setNavigationItemSelectedListener(this);
    }

    private List<News> initData() {
        List<News> news = new ArrayList<>();
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "https://cdn.pixabay.com/photo/2018/07/16/13/17/kiss-3541905__480.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "https://cdn.pixabay.com/photo/2018/12/16/18/12/open-fire-3879031__480.jpg", "话说我从13年开始写博客写到"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "https://cdn.pixabay.com/photo/2018/12/15/02/53/flower-3876195__480.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前",  "https://cdn.pixabay.com/photo/2018/11/29/19/29/autumn-3846345__480.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "https://cdn.pixabay.com/photo/2018/09/12/12/14/photographer-3672010__480.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前",  "", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前",  "http://icon.nipic.com/BannerPic/20181210/original/20181210111658_1.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "https://cdn.pixabay.com/photo/2018/07/16/13/17/kiss-3541905__480.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前",  "http://icon.nipic.com/BannerPic/20181210/original/20181210111658_1.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));
        news.add(News.create(1, "全国企业信用信息公示系统", "7分钟前", "http://icon.nipic.com/BannerPic/20181210/original/20181210111658_1.jpg", "话说我从13年开始写博客写到现在，也写出了一些成绩。成为了博客专家，出版了自己的书，推出了自己的开源框架，还有着自己的微信公众号。我相信有很多朋友可能都是通过我的书或者是我的博客入门和学习Android开发的，但是我自己却始终有一个遗憾，我虽然帮助了许多人学会了开发Android App，但是我自己却几乎从来没有开发过一个完整的App，更没有参与过任何一个知名App的研发"));

        return news;
    }

    @Override
    public void onBackPressed() {
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }



    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
        Log.i(TAG, "onNavigationItemSelected: click =>" + id);

        Intent intent = new Intent();

        if (id == R.id.nav_camera) {
            intent.setClass(MainActivity.this, MainActivity.class);

        } else if (id == R.id.nav_gallery) {

        } else if (id == R.id.nav_slideshow) {

        } else if (id == R.id.nav_manage) {

        } else if (id == R.id.nav_share) {

        } else if (id == R.id.nav_send) {

        }
        startActivity(intent);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}
